package fechas;

import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;


/**
 * 
 * Tests de la clase FechaUtils
 * @author Damian Cipolat
 *
 */

public class FechaUtilsTestDamian
{

	private String Latina;
	private String Americana;
	private String ISO;
	
	@Before
	public void inicializar()
	{
		Latina    = "06/10/1987";
		Americana = "01-15-2040";
		ISO       = "1997-09-09";
	}
	
	// FORMATO LATINO
	
	@Test
		
	/* Comportamiento en caso ideal */
	public void probar_convercion_StraDate_Latino_ok()
	{		
		Assert.assertNotNull(FechaUtils.stringToDateLatino(Latina));		
	}
	
	@Test
	
	/* Comportamiento en caso de error, ver si ante el error devuelve null */
	public void probar_convercion_StraDate_Latino_no()
	{		
		Assert.assertNull(FechaUtils.stringToDateLatino("14/01/2012"));		
	}	
	
	// FORMATO AMERICANO
	
	@Test

	/* Comportamiento en caso ideal */
	public void probar_convercion_StraDate_americ_ok()
	{		
		Assert.assertNotNull(FechaUtils.stringToDateAmericano(Americana));		
	}
	
	@Test
	
	/* Comportamiento en caso de error, ver si ante el error devuelve null */
	public void probar_convercion_StraDate_americ_no()
	{		
		Assert.assertNull(FechaUtils.stringToDateAmericano("14-01-2012"));		
	}	
		
	// FORMATO ISO
	
	@Test

	/* Comportamiento en caso ideal */
	public void probar_convercion_StraDate_iso_ok()
	{		
		Assert.assertNotNull(FechaUtils.stringToDateIso8606(ISO));		
	}
	
	@Test
	
	/* Comportamiento en caso de error, ver si ante el error devuelve null */
	public void probar_convercion_StraDate_iso_no()
	{		
		Assert.assertNull(FechaUtils.stringToDateIso8606("1987@10@2012"));		
	}

	
	//FORMATO FLEXIBLE
	public void probar_flexible()
	{ 
		//Si logra convertir quiere  decir q se reconocio el formato en algun lugar
		Assert.assertNotNull(FechaUtils.stringToDateFlexible("ISO"));						
	}
	/* Formato libre con fallas*/
	public void probar_flexible_error()
	{ 
		//Si logra convertir quiere  decir q se reconocio el formato en algun lugar
		Assert.assertNotNull("asdd",FechaUtils.stringToDateFlexible("ISO"));						
	}
	
	//FECHA ANTERIOR
	
	@Test
	public void esfechaanterior()
	{
		FechaUtils.esFechaAnterior(ISO, Americana);
	}
	
	//DIFERENCIA ENTRE FECHAS
	
	@Test
	public void diferencia_fechas()
	{
		FechaUtils.diferenciaEntreFechasEnDias(Latina,ISO);
	}
	
	
	
}

